var redis = require('redis');
var client = redis.createClient(6379, '192.168.2.54');

client.on('error', function(err) {
  console.log('Error ' + err);
});

client.set('color', 'red', redis.print); // print函数输出操作的结果，或在出错时输出错误
client.get('color', function(err, value) {
  if (err) throw err;
  console.log('Got: ' + value);
});

/**
 * 在Redis哈希表元素中存放数据
 */ 
client.hmset('camping', { // 设置哈希表元素
  'shelter': '2-person tent',
  'cooking': 'campstove'
}, redis.print);

client.hget('camping', 'cooking', function(err, value) { // 获取元素"cooking"的值
  if (err) throw err;
  console.log('Will be cooking with: ' + value);
});

client.hkeys('camping', function(err, keys) { // 获取哈希表的键
  if (err) throw err;
  keys.forEach(function(key, i) {
    console.log(' ' + key);
  });
});

/**
 * 在Redis用链表存储和获取数据
 */  
client.lpush('tasks', 'Paint the bikeshed red.', redis.print);
client.lpush('tasks', 'Paint the bikeshed green.', redis.print);
client.lrange('tasks', 0, -1, function(err, items) {
  if (err) throw err;
  items.forEach(function(item, i) {
    console.log(' ' + item);
  });
});

/**
 * 用集合存储和获取数据
 */  
client.sadd('ip_addresses', '204.10.37.96', redis.print);
client.sadd('ip_addresses', '204.10.37.96', redis.print);
client.sadd('ip_addresses', '72.32.231.8', redis.print);
client.smembers('ip_addresses', function(err, members) {
  if (err) throw err;
  console.log(members);
});

